#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <inttypes.h>
#include "freertos/FreeRTOS.h"
#include "freertos/task.h"
#include "freertos/queue.h"
#include "esp_log.h"
#include "button.h"
#include "led.h"


// 全局常量, 字符串, 用于日志打印的标签
const static char* TAG = "led";

void app_main(void)
{
    uint32_t io_num;

    //按键初始化
    button_init();
    
    //led初始化
    led_init();

    while(true) {
        // 堵塞读取队列中的数据
        if(xQueueReceive(gpio_evt_queue, &io_num, portMAX_DELAY)) {
            // 读取成功，则打印出gpio引脚号和当前的电平
            ESP_LOGI(TAG, "GPIO[%ld] intr, val: %d", io_num, gpio_get_level(io_num));
            if(io_num==GPIO_INPUT_BOOT)
            {
                ESP_LOGI(TAG, "led on");
                gpio_set_level(GPIO_OUT_LED, 1);
            }else if(io_num==GPIO_INPUT_EXTER)
            {
                ESP_LOGI(TAG, "led off");
                gpio_set_level(GPIO_OUT_LED, 0);
            }
        }
    }
}